<!DOCTYPE html>
<html>
    <head>
        
    </head>
    <body>
        <script>
// Alle verfügbaren Stimmen auflisten
function verfügbareStimmenAuflisten() {
    const synth = window.speechSynthesis;

    // Stimmen abrufen (mit Verzögerung, da die Liste asynchron geladen werden kann)
    setTimeout(() => {
        const stimmen = synth.getVoices();
        stimmen.forEach((stimme, index) => {
            if(stimme.lang === 'de-DE')
              console.log(`${index + 1}: Name: ${stimme.name}, Sprache: ${stimme.lang}, Natürlich: ${stimme.localService}`);
            
        });
    }, 100); // Kurze Verzögerung für die Stimmenliste
}

// Text mit einer natürlichen Stimme vorlesen
function textMitNatürlicherStimmeVorlesen(text, stimmeName = '') {
    const synth = window.speechSynthesis;
    const utterance = new SpeechSynthesisUtterance(text);

    // Stimmen abrufen und passende Stimme auswählen
    const stimmen = synth.getVoices();
    const gewählteStimme = stimmen.find(stimme => stimme.name === stimmeName);

    if (gewählteStimme) {
        utterance.voice = gewählteStimme; // Stimme setzen
    } else {
        console.warn('Stimme nicht gefunden. Standardstimme wird verwendet.');
    }

    utterance.lang = 'de-DE'; // Sprache auf Deutsch einstellen
    synth.speak(utterance);
}

// Stimmen abrufen
verfügbareStimmenAuflisten();

// Beispieltext vorlesen
setTimeout(() => {
    //Name: Microsoft Katja Online (Natural) - German (Germany), Sprache: de-DE, Natürlich: false
    textMitNatürlicherStimmeVorlesen('Hallo, dies ist eine natürliche Stimme!', 'Microsoft Katja Online (Natural) - German (Germany)');
}, 200); // Nach 200 ms, um sicherzustellen, dass die Stimmen geladen sind


        </script>
    </body>
</html>